package main

import "fmt"

// 全局匿名函数
var (
	// 支持外部访问
	Fun1 = func(a, b int) int {
		return a + b
	}

	fun2 = func(a, b int) int {
		return a + b
	}
)

func main() {
	var n1 = 10
	var n2 = 20

	// 匿名函数 声明方式 1
	// 直接获取结果，使用一次
	res1 := func(a int, b int) int {
		return a + b
	}(n1, n2)
	fmt.Println("res1 = ", res1)

	// 二、函数签名赋值给一个变量，再用该变量调用函数
	f := func(a, b int) int {
		return a + b
	}
	res2 := f(n1, n2)
	fmt.Println("res2 = ", res2)

	fmt.Println("res3 = ", Fun1(n1, n2))
	fmt.Println("res4 = ", fun2(n1, n2))
}
